In recent years, computer users have become more and more reliant upon personal computers to store and present a wide range of digital media. For example, users often utilize their computers to store and interact with digital images. A digital image is a data entity composed of one or more two dimensional planes of data. An uncompressed or “source” image is generally stored or serialized in a raster scan order. To perform operations with respect to the uncompressed image, the pixels are scanned from left to right, top to bottom, and the color channels are generally interleaved. Uncompressed digital images, however, can consume considerable storage and transmission capacity.
To more efficiently store and transmit digital images, the image data may be compressed, and a variety of compression techniques exist in the art. In a compressed domain, data organization is determined, in part, by the compression algorithm. Image compression techniques generally remap the image into an alternate space by means of a data transform. For instance, data transforms such as discrete cosine transforms (DCT) and wavelets may be used to compress data. Compressed data may be organized in blocks having sequences of transform coefficients. The blocks may be scanned in order (e.g., left to right, top to bottom), with in-block data scanned using a “zig-zag scan pattern.” In an alternative organization, the information related to the DC coefficients is serialized first, and the remaining coefficients follow.
Existing compression techniques may offer multiple degrees of freedom in organizing the transform data. For instance, data can be serialized by frequency band, by “precinct” (i.e., a spatial partitioning of data), by bitplane and/or by color channel. While this organization provides freedom to a user, it may be difficult to implement. For example, decoders attempting to recreate images may require additional capabilities to handle the various combinations of data. Further, decoders may require more memory and more computational power to handle arbitrarily organized data. In short, while existing compression techniques may provide flexibility in the organization of compressed domain data, an unacceptably high level of complexity often accompanies such flexibility. Indeed, existing compression techniques do not offer a flexible, yet tractable, organization of compressed domain data.